package cn.xuexiyuan.springstudy.core.demo04.config;

import cn.xuexiyuan.springstudy.core.demo04.entity.AbstractPrefix;
import cn.xuexiyuan.springstudy.core.demo04.entity.DatePrefix;
import cn.xuexiyuan.springstudy.core.demo04.entity.TimePrefix;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

/**
 * @Configuration 注解修饰作用是告诉 Spring 它是一个配置类。
 *
 * 解决注解自动装配的模糊问题： @Primary 或 @Qualifier 注解。
 *
 * 当多个候选者都满足依赖的自动装配时, @Primary 注解可以让被注解的 bean 拥有更高优先级。
 *
 */
@Configuration
public class PrefixConfiguration {


    @Bean
    public AbstractPrefix datePrefix(){
        return new DatePrefix();
    }

    @Bean
    @Primary
    public AbstractPrefix timePrefix(){
        return new TimePrefix();
    }
}
